gtk-demo: Properly cleanup the revealer demo
authorMatthias Clasen <mclasen@redhat.com>
Thu, 4 Jul 2013 21:52:09 +0000 (17:52 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 4 Jul 2013 21:53:40 +0000 (17:53 -0400)
We forgot to remove the timeout.

demos/gtk-demo/revealer.c

index cee1f3db3b4b3a4219ee3f03d4c709acd0cb4df3..cb0752a57141541237c1394629dfb0f133c9a812 100644 (file)
@@ -36,11 +36,18 @@ reveal_one (gpointer data)
   return count < 9;
 }
 
+static guint timeout = 0;
+
 static void
 response_cb (GtkWidget *dialog,
              gint       response_id,
              gpointer   data)
 {
+  if (timeout != 0)
+    {
+      g_source_remove (timeout);
+      timeout = 0;
+    }
   gtk_widget_destroy (dialog);
 }
 
@@ -71,7 +78,7 @@ do_revealer (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     {
       count = 0;
-      g_timeout_add (690, reveal_one, NULL);
+      timeout = g_timeout_add (690, reveal_one, NULL);
       gtk_widget_show_all (window);
     }
   else